The original impetus behind the field of file compression was due to the limitations in storage. While advances in data storage technologies have removed this initial limitation and made storage space more efficient and affordable, there has been resurgence in the field of file compression. The new driving factors behind this resurgence are limitations associated with Internet bandwidth. End users demand faster performance rates from their Internet experience. In addition, web pages are incorporating larger files into their design. Moreover, these files are not limited to fixed size images but may also include streaming audio or video again exacerbating this Internet throughput bottleneck.
Lossless data compression is considered to be a special class of compression algorithms. These algorithms permit the exact original data file to be recreated from a compressed version of the original data file. Lossless data compression should be contrasted to lossy data compression which recreates the exact original data files from a corresponding compressed format. Numerous file formats enable lossless image/video compression. However, these techniques are often better suited for particular file types.
Lossy data compression techniques are also known, but delivering a desirable compression result can vary relatively significantly depending on the value of difference from the original.
The Graphics Interchange Format (GIF) is an 8-bit per pixel bitmap image compression format that was introduced in 1987. The GIF images are compressed using the Lempel-Ziv-Welch (LZW) lossless data compression technique. The GIF format makes use of a palette table comprising 256 distinct colors from the 24-bit RGB (red, green, blue) color space. Due to this 256 color limit, the GIF format generally is not well adapted for reproducing color photographs, and other images with continuous color.
The Portable Network Graphics (PNG) is a bitmapped image format that employs lossless image compression. The PNG format makes use of lossless data compression algorithm named deflate that uses a combination of the LZ77 algorithm and Huffman coding. The impetus behind the creation of the PNG format was to improve upon some of the limitations of GIF. The PNG format supports palettes of 24-bit RGB color space and grayscale images/frames. However, PNG provides poor compression for photo images and it does not support bit depth other than 8 bit or other color spaces such as CMYK image (cyan, magenta, yellow, black).
Lossless JPEG format encodes the difference between a predicted value and the actual value for each pixel. With 16-bit data, these differences are computed modulo 16-bits, so the range of possible differences is −32768 to +32767. Two values are stored for the difference. First, the number of bits required to store the difference (encoded via Huffman coding), and then the actual difference.
U.S. Pat. No. 7,113,638 issued to Caruso et al. entitled “Image Compression Usable with Animated Images” describes a lossless compression technique. However, this technique is limited to indexed-color images (24-bit RGB color space with a palette table including 256 colors).